using System;
using Ease.EaseNode.Runtime;
using UnityEditor.Experimental.GraphView;
using UnityEngine;

namespace Ease.EaseNode.Editor.NodeView
{
    public interface IEaseNode
    {
        public IEaseNodeDataState State { get; set; }
        public string Key { get; set; }
        public event Action<BaseEaseNode> OnNodeSelected;

        void OnNodeCreate(Vector2 pos);

        void OnNodeRemove();

        void OnEdgeCreate(Edge edge);

        void OnEdgeRemove(Edge edge);
    }
}